package com.tedu.api.thread;

import org.junit.Test;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

/**
 * 单元测试：testLambdaHomeWork1【以此类推】--周二十二点前
 * 1.线程两种创建方式：使用Lambda表达式完成
 * 2.找集合中：ListAPI：单元测试
 * 3.找IO流-File类--FilterAPI：转换成匿名内部类Lambda
 * 使用Lambda表达式完成【5行搞定】
 * 4.找IO流-File类--FilterAPI：转换成匿名内部类转成Lambda
 * 使用Lambda表达式完成【两行搞定】
 */

public class LambdaHomeWork {
    //第1个作业
    public static void main(String[] args) {
        Thread t = new Thread(() -> {
            for (int i = 0; i < 200; i++) {
                System.out.println("啦啦啦啦啦啦");
            }
        });
        t.start();
        System.out.println(t);
        //使用Lambda表达式  Runnable真正线程操作类--功能run方法
        Runnable b = () -> {
            for (int i = 0; i < 200; i++) {
                System.out.println("猪猪侠");
            }
        };
        Thread t1 = new Thread(b);
        t1.start();
    }

    //第2个作业
    @Test
    public void listAPI() {
        List<String> list = new ArrayList<>();
        list.add("喜羊羊");
        list.add("波比");
        list.add("超人强");
        list.forEach((String) ->
                System.out.println("." + String + "\n" + "🐂"));

    }

    //第3个作业
   @Test
    public void Io() throws IOException {
        Path path = Paths.get(".");
        File file= new File(".");
        File[] File = file.listFiles((File pathname) -> {
            String str = pathname.getName();
            System.out.println(str);
            return str.startsWith("奥特曼");
        });


        //第4个作业
        FileFilter 喜羊羊 = file1 ->
                file.isFile() &&
                        file.getName().toLowerCase().endsWith(".txt");
        Files.list(path).forEach(System.out::println);
    }
}










